$(document).ready(function(){
	$(window).resize(function() {
	    $('#option-user-table').bootstrapTable('resetView', {
	        height: $(window).height() - 100
	    });
	});
	//查询
	$("#search-button").click(function () {
        $('#option-user-table').bootstrapTable(('refresh')); // 很重要的一步，刷新url！
    });
	
	$("#roleSelect").change(function(){
        $("#roleIds").val($("#roleSelect").val());
	});
    
    // 表单验证
    $('#form_data').bootstrapValidator({
      // 默认的提示消息
      message: 'This value is not valid',
      // 表单框里右侧的icon
      feedbackIcons: {
        　　　　　　　　valid: 'glyphicon glyphicon-ok',
        　　　　　　　　invalid: 'glyphicon glyphicon-remove',
        　　　　　　　　validating: 'glyphicon glyphicon-refresh'
      },
      submitHandler: function (validator, form, submitButton) {
        // 表单提交成功时会调用此方法
        // validator: 表单验证实例对象
        // form  jq对象  指定表单对象
        // submitButton  jq对象  指定提交按钮的对象
      },
      fields: {
        username: {
          message: '用户名验证失败',
          validators: {
            notEmpty: {
              message: '用户名不能为空'
            },
//            stringLength: {  //长度限制
//              min: 6,
//              max: 30,
//              message: '用户名长度必须在6到30位之间'
//            },
            regexp: { //正则表达式
              regexp: /^[a-zA-Z0-9_]+$/,
              message: '用户名只能包含大写、小写、数字和下划线'
            },
          }
        },
        password:{
        	message: '密码验证失败',
        	validators: {
                notEmpty: {
                  message: '密码不能为空'
                },
        	}
        },
        confirmPassword:{
        	message: '确认密码验证失败',
        	validators: {
                notEmpty: {
                  message: '密码不能为空'
                },
                identical: {  //比较是否相同
                    field: 'password',  //需要进行比较的input name值
                    message: '两次密码不一致'
                 },
        	}
        },
        name:{
        	message: '名称验证失败',
        	validators: {
                notEmpty: {
                  message: '名称不能为空'
                },
        	}
        },
        roleSelect:{
        	message: '角色验证失败',
        	validators: {
                notEmpty: {
                  message: '角色不能为空'
                },
        	}
        },
//        email: {
//          validators: {
//            notEmpty: {
//              message: '邮箱地址不能为空'
//            },
//            emailAddress: {
//              message: '邮箱地址格式有误'
//            }
//          }
//        }
      }
    });
    
	$('#addUserModal').on('hide.bs.modal', function () {
		$("#id").val('');
		$("#username").val('');
		$("#password").val('');
		$("#confirm_password").val('');
		$("#name").val('');
		$("#roleSelect").selectpicker('deselectAll');
	    $("#roleSelect").selectpicker('refresh');
		$("#roleIds").val('');
		$("#phone").val('');
		$("#email").val('');
		$("#form_data").data("bootstrapValidator").resetForm();
    });
	
	getRoleList();
	getUsers();
});

function getRoleList(){
	$.ajax({
		type : "get",
		url : "/sys/users/roles?t="+new Date().getTime(),
		//data: params,
		dataType:"json",
		headers: {"Content-Type": "application/json;charset=utf-8"},
		success : function(data) {	
			if(data && data.httpCode==200){
				$("#roleSelect").html("");
				$.each(data.data,function(index,item){
					var option = '<option value="'+item.id+'">'+item.name+'</option>'
					$("#roleSelect").append(option);
				});
				$("#roleSelect").selectpicker('refresh');
		        $('#roleSelect').selectpicker('render');

			}
		},error: function(request) {
			layer.msg("获取角色列表失败！", {time: 2000});
        }
	});
}

function getUsers(){
	$('#option-user-table').bootstrapTable({
//		ajax:function(request){                    //使用ajax请求
//            $.ajax({
//                type:"GET",
//                url:'/sys/users',
//                contentType:'application/json;charset=utf-8',
//                dataType:'json',
//                data:request.data,
//                success:function (res) {
//                    request.success({
//                    	total: res.iTotalRecords,
//                    	rows:res.data,
//                    });
//                    $('#option-user-table').bootstrapTable('load', res.data);
//                },
//                    error:function(error){
//                        console.log(error);
//                    }
//            })
//        },
		height: $(window).height() - 100,
		method: 'get',
		url:'/sys/users',
		contentType:'application/json;charset=utf-8',
		striped : true, //是否显示行间隔色
		cache: false, //是否使用缓存，默认为true，所以一般情况下需要设置一下这个属性（*）
		pageNumber : 1, //初始化加载第一页
        pagination : true,//是否分页
        locale: "zh-CN",
//        sortable: true,                     //是否启用排序
//        sortOrder: "asc",                   //排序方式
        pageSize : 10,//单页记录数
        pageList : [10,20,50,100],//可选择单页记录数
        showRefresh : false,//刷新按钮
        uniqueId : "id", // 每一行的唯一标识，一般为主键列
        cardView : false, // 是否显示详细视图
		detailView : false, // 是否显示父子表
		resizable : false,
		sidePagination : "server", //分页方式：client客户端分页，server服务端分页（*）
		queryParamsType : "",
        queryParams : function(params) {//上传服务器的参数
            var temp = {
            	pageSize : params.pageSize, // 每页显示数量
            	pageNum : params.pageNumber, // SQL语句起始索引
                searchContent: $("#inputkeyword").val(),//按条件搜索
            };
            return temp;
        },
        responseHandler: function (res) {
            return{                            //return bootstrap-table能处理的数据格式
                "total":res.iTotalRecords,
                "rows":res.data
            }
        },
        columns : [
//            {
//                field: "state", 
//                checkbox: true, //第一栏显示复选框
//                align: 'center',
//            },
            {
				field : 'id',
				title : 'ID',
				visible: false
			},
			{
				field : 'username',
				title : '账号',
				width : 200,
				align: 'center',
				//sortable : true
			},
			{
				field : 'roleNames',
				title : '角色',
				align: 'center',
				width : 200,
				//sortable : true
			},
			{
				field : 'name',
				title : '姓名',
				width : 200,
				align: 'center',
				//sortable : true
			},
			{
				field : 'phone',
				title : '电话',
				width : 200,
				align: 'center',
				//sortable : true
			},
			{
				field : 'email',
				title : '邮箱',
				width : 200,
				align: 'center',
				//sortable : true
			},
			{
				field : 'createTime',
				title : '创建时间',
				width : 200,
				align: 'center',
				//sortable : true
			},
			/*{
				field : 'operate',
				title : '操作',
				width : 220,
				align : 'center',
				formatter:function(value, row, index) {
				    return [
//				    	"<a name='option-user-table-modfiy'>密码重置</a>",
				        "<a name='option-user-table-modfiy' onclick='showEditModal("+JSON.stringify(row)+")'>修改</a>",
				        '<a name="option-user-table-delete" onclick="showDelModal(\''+row.id+'\',\''+row.username+'\')">删除</a>'
				    ].join('');
				}
			}*/
        ]
	});
}
function add(){
	$("#myModalLabel").text("新增用户");
	$("#addUserModal").modal('show');
}
function showEditModal(row){
	$("#myModalLabel").text("编辑用户");
	$("#id").val(row.id);
	$("#username").val(row.username);
	$("#password").val(row.password);
	$("#confirm_password").val(row.password);
	$("#name").val(row.name);
	if(row.roleIds){
		$("#roleSelect").selectpicker("val",row.roleIds.split(","));
		$("#roleSelect").selectpicker('refresh');
		$("#roleIds").val(row.roleIds);
	}
	$("#phone").val(row.phone);
	$("#email").val(row.email);
	$("#addUserModal").modal('show');
}

function showDelModal(id,username){
	$("#deleteHint").text("您确认要删除"+username+"用户吗？");
	$("#deleteHaulId").val(id);
	$("#delModal").modal('show');
}
function confirmDel(){
	var id = $("#deleteHaulId").val();
	$.ajax({
		type :"DELETE",
		url : "/sys/users/"+id,
		data: null,
		dataType:"json",
		headers: {"Content-Type": "application/json;charset=utf-8"},
		success : function(data) {	
			if(data){
				if(data.httpCode==200){
					layer.msg("删除成功", {icon:1,time: 2000});
					$('#delModal').modal('hide');
					$('#option-user-table').bootstrapTable(('refresh'));
				}else{
					layer.msg(data.msg, {icon:2,time: 2000});
				}
			}
		},error: function(request) {
			layer.msg("删除失败！", {icon:2,time: 2000});
        }
	});
}

function onPasswordChange(obj){
	$("#confirm_password").val('');
}



function save(){
	$("#form_data").bootstrapValidator('validate');//提交验证
	if($('#form_data').data('bootstrapValidator').isValid()){
		var form_data = $('#form_data').serializeArray();
		var obj = {};
		$.each(form_data,function(i,v){
			obj[v.name] = v.value;
		})    
		console.log(JSON.stringify(obj));
		var type = "add";
		if(obj.id){
			type = "edit";
		}
		obj.tenantId = tenantId;
		$.ajax({
			type :type=="edit"?"PUT":"POST",
			url : "/sys/users",
			data: JSON.stringify(obj),
			dataType:"json",
			headers: {"Content-Type": "application/json;charset=utf-8"},
			success : function(data) {	
				if(data){
					if(data.httpCode==200){
						layer.msg(type=="edit"?"编辑用户成功":"添加用户成功", {icon:1,time: 2000});
						$('#addUserModal').modal('hide');
						$('#option-user-table').bootstrapTable(('refresh'));
					}else{
						layer.msg(data.msg, {icon:2,time: 2000});
					}
				}
			},error: function(request) {
				layer.msg(type=="edit"?"编辑用户失败！":"添加用户失败！", {icon:2,time: 2000});
	        }
		});
	}
	return false;
}